1. Field of the Invention
The present invention generally relates to the field of print serving or more generally to the field of servicing output requests of any kind. The invention proposes a solution to the problem of how a client for output services should specify his service requirements such that he can be optimally served given serviceability limitations of the system.
2. Background Description
Modern-day enterprise printing networks are large and complex. They may support thousands of users and hundreds of printers and related physical output devices. Moreover, they are typically dynamic in both their activity and their configuration. Users are continually placing demands on printing resources by submitting jobs, causing device queues to grow and shrink, and printing resources such as paper and ink to become exhausted and then replenished. Devices may fail, and then come back on line. New printers and related devices of varying capabilities may be added to or removed from the network over time.
One important and problematic aspect of the present mode of interaction between users and printing networks is that users must submit their output jobs to specific output devices. Often, the onus (or privilege) of choosing the output device is given to the user. For example, when a user wishes to print a word-processing document or a web page displayed by a browser, they use a menu in the Graphical User Interface (GUI) of the application (e.g. the word processor or the browser) to select the “Print” operation, which presents to the user a graphical window offering one or more choices of output device, along with printing options pertaining to that device. The user selects the desired output device, along with any options that may apply, and then signals through the graphical window that he wishes to submit the job. The request is routed to the device, and if all goes well the job eventually completes on the selected output devices, printed according to the specified options.
Requiring users to select a specific output device up front is problematic because there are many circumstances in which users are not well enough informed to make such a decision. One general class of such situations is when the user is insufficiently informed about output device capabilities and attributes. A common solution is to define a default printer for the computer from which the print job request is generated, or to define a default printer for each of several applications from which print job requests may be issued. Another solution is to take the most recently requested output device as the default. However, this approach does not help with the initial selection of the default output device, nor is it helpful if the user's print job has unusual requirements (e.g. for paper size or print file type), or if the user is in a different office or building than the one in which the default device is situated, or from which the last print request was issued.
One technique that is sometimes used to address the problem of selecting an appropriate printer when there is no useful precedent is to imbed some information about printer location and other attributes in its name, which can then be viewed in the printer selection window. However, this approach is cumbersome, ad hoc, and not as generally informative as is often required. It can also be subject to creating user errors, if the printer is moved to another location before its name is changed to reflect the move.
Even when a user is sufficiently knowledgeable about the capabilities and attributes of various alternative output devices, they may not be sufficiently aware of the present status of those devices. This constitutes a second general type of situation in which the user is unqualified to select the device. For example, the selected output device may have a long queue, causing the user to wait a long time for output, a discovery that is particularly annoying when the user has walked some distance to retrieve output, only to find that a large print job ahead of theirs is only halfway done. In retrospect, the user might have been more satisfied if her print job had been sent to a less-busy printer a little further from her office.
Even worse, the user may discover, upon trying to retrieve her output, that the printer is jammed or out of paper or toner, requiring her to cancel the job and resubmit it to another printer if the problem cannot be cleared up sufficiently quickly. In the latter case, even perfect knowledge of current device status would not avail the user, as the jam could occur after the job request is submitted.
A number of prior art references have teachings related to the above described difficulties. In U.S. Patent Publication No. 2003/0002078 to Toda, et al., a system is disclosed that allows a possibly mobile user to select conveniently located printers, based on route to printer and related information. Toda, however, is only concerned with the location of the printer, and does not consider possible tradeoffs between convenient location and other attributes like print speed, print resolution, and so forth.
In U.S. Patent Publication No. 2004/0190042 to Ferlitsch et al., a method is disclosed for providing enhanced utilization of printing devices by sending portions of a print job to different printers, based on their capabilities. The invention captures the fact that a print job need not be printed on a user-specified printer; however, this reference seeks to optimize the utilization of a cluster of printing devices and does not consider factors at the organization, site and user levels that might lead to a different basis for optimization.
Another prior art reference is U.S. Patent Publication No. 2005/0102442 to Ferlitsch, in which a policy-based method is disclosed for administering printers. This second invention of Ferlitsch discloses a user-defined printer usage administrative policy to select a printer from a pool of printers. While Ferlitsch provides for user specification of printing options, those options are selected from some specific choices. Ferlitsch does not provide a user-defined print policy which is capable of describing the tradeoffs among the desirable printing properties—such as time to print, distance to printer, and print quality. Further, Ferlitsch does not consider distinct preferences applicable to the various organizations that control the printers and to the various sites where the printers are located, nor does he address the flexibility that a user may require when specifying printing preferences over a range of print jobs.
Clearly, there is a need for a comprehensive method that frees users from the necessity of naming a specific output device or following a single policy, and instead determines the output device automatically based upon policies determined by the various stakeholders dependent upon the printer network.